[IOEMU] Simply fake-bios init of the piix4acpi device.
authorkfraser@localhost.localdomain <kfraser@localhost.localdomain>
Mon, 13 Nov 2006 14:25:48 +0000 (14:25 +0000)
committerkfraser@localhost.localdomain <kfraser@localhost.localdomain>
Mon, 13 Nov 2006 14:25:48 +0000 (14:25 +0000)
Signed-off-by: Keir Fraser <keir@xensource.com>
tools/ioemu/hw/piix4acpi.c
tools/ioemu/hw/piix_pci.c

index c06059e498d65b52da53c172fa35cbdf1ff98eed..aabd5ca7e9899e7791f30e7ae248e83a67256246 100644 (file)
@@ -406,7 +406,7 @@ void pci_piix4_acpi_init(PCIBus *bus, int devfn)
      * TODO:  if Guest Firmware or Guest OS will change this PMBA,
      * More logic will be added.
      */
-    pci_conf[0x40] = 0x41;
+    pci_conf[0x40] = 0x41; /* Special device-specific BAR at 0x40 */
     pci_conf[0x41] = 0x1f;
     acpi_map(d, 0, 0x1f40, 0x10, PCI_ADDRESS_SPACE_IO);
     acpi_reset(d);
index 051e082263cee5fdca2c55149b271f03a1f713e5..497d66898ca88a84158e2b2e8125908fb84bc437 100644 (file)
@@ -338,10 +338,14 @@ static void pci_bios_init_device(PCIDevice *d)
         break;
     case 0x0680:
         if (vendor_id == 0x8086 && device_id == 0x7113) {
-            /* PIIX4 ACPI PM */
-            pci_config_writew(d, 0x20, 0x0000); /* NO smb bus IO enable in PIIX4 */
+            /*
+             * PIIX4 ACPI PM.
+             * Special device with special PCI config space. No ordinary BARs.
+             */
+            pci_config_writew(d, 0x20, 0x0000); // No smb bus IO enable
             pci_config_writew(d, 0x22, 0x0000);
-            goto default_map;
+            pci_config_writew(d, 0x3c, 0x0009); // Hardcoded IRQ9
+            pci_config_writew(d, 0x3d, 0x0001);
         }
         break;
     case 0x0300:
@@ -394,14 +398,6 @@ static void pci_bios_init_device(PCIDevice *d)
         pic_irq = pci_irqs[pin];
         pci_config_writeb(d, PCI_INTERRUPT_LINE, pic_irq);
     }
-
-    if (class== 0x0680&& vendor_id == 0x8086 && device_id == 0x7113) {
-         // PIIX4 ACPI PM
-       pci_config_writew(d, 0x20, 0x0000); // NO smb bus IO enable in PIIX4
-       pci_config_writew(d, 0x22, 0x0000);
-       pci_config_writew(d, 0x3c, 0x0009); // Hardcodeed IRQ9
-       pci_config_writew(d, 0x3d, 0x0001);
-    }
 }
 
 /*